1. Field of the Invention
This invention relates to cluster environments in which a plurality of server computers cooperate to perform a distributed application. More particularly, the invention relates to a message broadcast protocol used by a cluster of virtual servers.
2. Description of the Related Art
A server cluster is a group of linked server computers that cooperate closely to perform a particular application. Clusters are usually deployed to improve performance and/or availability over that provided by a single server computer. In order to cooperate to perform their intended function, the servers in the cluster need to exchange messages with each other using a message broadcast protocol.
The use of virtualization technology is becoming increasingly common in server clusters. A virtual machine (VM), also referred to as a virtual computer, is a software implementation of a machine (computer) that executes programs like a real machine. Virtualization provides the ability for multiple virtual machines to run together on the same physical computer. Each virtual machine may execute its own operating system and may appear to a user of the virtual machine to be the same as an independent physical computer. The software layer that executes on the physical computer to create and manage the virtual machines is referred to herein as virtualization software.
Virtualization may be used in a computer server cluster to make more efficient use of the physical resources of the physical computers (nodes) in the cluster. Clusters may be virtualized so that multiple virtual servers execute on each physical node in the cluster, e.g., where each virtual server is implemented as a virtual machine. By implementing cluster virtualization, organizations are able to consolidate the application workload of multiple servers onto a smaller number of physical nodes, which results in improved hardware utilization, fewer physical nodes, cost savings, and simplified deployment and management.
In addition to these benefits, the virtualization software which implements the virtual servers may also enable greater flexibility in the configuration of the cluster environment beyond what is possible in non-virtualized server clusters. For example, a virtual server may be dynamically migrated from one physical node of the cluster to another. As another example, the number of virtual CPUs assigned to a particular physical node may be dynamically changed.
These types of dynamic changes in the configuration of the virtualized server cluster are problematic for conventional message broadcast protocols designed to be used in non-virtualized server clusters. When the virtualization environment of a particular node is dynamically changed, the node may be temporarily unable to receive and/or respond to messages broadcast by other nodes in the cluster during the configuration change. This may cause a slowdown in the operation of the other nodes while they wait for the node undergoing the configuration change to respond. It may also cause the other nodes to mistakenly assume that the node undergoing the configuration change has failed and is no longer a member of the cluster.